<?php
namespace app\common\model;
use think\Cache;
use think\Db;
use think\Model;

/**
 * 生成多层树状下拉选框的工具模型
 */
class Category extends Model
{
    private function get_key(){
        $key='cate_list';
        return $key;
    }
    //获取分类
    public function getCategory(){
        $key=$this->get_key();
        $list=Cache::get($key);
        if(!$list){
            $list=Db::name('Category')->where('status=1')->order('sort desc,id asc')->select();
            Cache::set($key,$list);
        }
        $res=model('Tree')->toFormatTree($list,'name');
        return $res;
    }

    //获取分类
    public function getCategorytree( $pk = 'id', $pid = 'pid', $child = '_child'){
        $key=$this->get_key();
        $list=Cache::get($key);
        if(!$list){
            $list=Db::name('Category')->where('status=1')->order('sort desc,id asc')->select();
            Cache::set($key,$list);
        }
        $res=model('Tree')->toTree($list, $pk, $pid ,$child);
        return $res;
    }
    //添加分类
    public function addCate($data){
        $res=Db::name('Category')->insert($data);
        //删除缓存
        $key=$this->get_key();
        Cache::rm($key);
        return $res;
    }
    //修改分类
    public function modCate($data){
        $res=Db::name('Category')->update($data);
        //删除缓存
        $key=$this->get_key();
        Cache::rm($key);
        return $res;
    }
    //删除分类
    public function delCate($id){
        $res=Db::name('Category')->delete($id);
        //删除缓存
        $key=$this->get_key();
        Cache::rm($key);
        return $res;
    }
}